<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>
    <style></style>
  </head>
  <body>
    <div>纯函数的概念</div>
    <p>纯函数的概念</p>
    <p>纯函数：相同的输入永远会得到相同的输出，而且没有任何可观察的副作用</p>
    <p>出函数就类似数学中的函数（用来描述输入和输出之间的关系）y=f(x)</p>
    <p>
      lodash是一个纯函数的功能库，提供了对数组，对象，字符串，函数等操作的一些方法
    </p>
    <p>数组的slice和splice分别是:纯函数和不纯函数</p>
    <p>----slice返回数组中指定的部分，不会改变原数组</p>
    <p>----splice对数组进行操作返回数组，会改变原数组</p>
    <script>
      //下面三次console.log输出结果相同，因此slice是纯函数
      let array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
      console.log(array.slice(0, 5));
      console.log(array.slice(0, 5));
      console.log(array.slice(0, 5));
      //下面二次console.log输出结果不相同，因此splice不是纯函数
      console.log(array.splice(0, 5));
      console.log(array.splice(0, 5));

      //   纯函数的实现(必须满足相同的输入，输出相同的结果)
      function getSum(n1, n2) {
        return n2 + n2;
      }

      console.log(getSum(3, 4));
      console.log(getSum(3, 4));
      console.log(getSum(3, 4));
    </script>
  </body>
</html>
